<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <title></title>
<meta charset="utf-8" />
    <script>
        //按enter键实现tab键的效果
        document.onkeydown=function(evt){
            //document.all可以判断浏览器是否是IE，是页面内所有元素的一个集合，只有IE6，7，8返回true
            var isie = (document.all) ? true : false;
            var key;
            var srcobj;
            // if the agent is an IE browser, it's easy to do this.
            /*Netscape/Firefox/Opera中不支持 window.event.keyCode,需要用event.which代替，
            IE用event.keyCode方法获取当前被按下的键盘按键值，
            而NetScape/FireFox/Opera用的则是event.which*/
            if (isie) {
                key = event.keyCode;
                srcobj=event.srcElement;//event.srcElement，触发这个事件的源对象
            }
            else {
                key = evt.which;
                srcobj=evt.target;//target是Firefox下的属性
            }
            // target和targetName区别：前者返回触发事件的元素；后者返回绑定事件的元素  https://www.cnblogs.com/yewenxiang/p/6171411.html
            if(key==13 && srcobj.type!='button' && srcobj.type!='submit' &&srcobj.type!='reset' && srcobj.type!='textarea' && srcobj.type!='') {
                if(isie) {
                    event.keyCode=9;//设置按键为tab键
                } else {
                    var el=getNextElement(evt.target);
                    console.log('下一个元素')
                    console.log(el);
                    if (el.type!='hidden')
                        ;   //nothing to do here.
                    else
                        while(el.type=='hidden') // 如果元素隐藏一直找知道找到不隐藏的下一个元素
                            el=getNextElement(el);
                    if(!el)
                        return false;
                    else
                        el.focus();
                }
            }
        }


    function getNextElement(field) {
        console.log(field.id);
        var form = field.form;
        for(var e = 0; e < form.elements.length; e++) {
            if (field == form.elements[e])
                break;
        }
        return form.elements[++e % form.elements.length];
    }
    </script>
</head>
<body>
    <form id="a"   name="form"> 
        <input id="b" type="text" name="name" value="1" />
        <span id="g">这是span</span>
        <input id="c" type="text" name="name" value="2" />
        <div id="d" style="width:500px;display:inline">
            <input id="e" type="text" name="name" value="3-1" />
            <input id="f" type="text" name="name" value="3-2" />
        </div>
        <textarea id="h"  type="text" name="name" value="4" ></textarea>
        <input id="i" type="text" name="name" value="5" />
        </form>
</body>
</html>